Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - [VB.NET] Verificare esistenza subitem
Forum - C# / VB.NET - [VB.NET] Verificare esistenza subitem

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
dedalux (Normal User)
Pro


Messaggi: 155
Iscritto: 14/02/2009

Segnala al moderatore
Postato alle 23:01
Sabato, 31/10/2009
Sera a tutti gente,
ho una listview, multiselect = false, e tre colonne.
Duqnue al doppio click su un elemento naviga in un browser secondo il link contenuto nella terza colonna (secondo subitem di quello selezionato).
In questa lista ci sono alcuni item che hanno due subitem, di cui il secondo contiene il link, altri invece ne hanno un solo, quindi al doppio click su di loro non accade nulla.
Non riesco a trovare il codice x verificare  l'esistenza del secondo subitem.

Al click dovrebbe verificarsi

Click

Se elemento_selezionato.contiene_un_subitem_all'indice_2 e questo_subitem.ha_un_testo allora
naviga_con_quel_testo
Fine

io ho scritto questo ma ritorna un'errore

Codice sorgente - presumibilmente VB.NET

  1. Private Sub Lista_DoubleClick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Lista.DoubleClick
  2.         If Lista.SelectedItems.Item(0).SubItems.Count = 2 And Lista.SelectedItems.Item(0).SubItems(2).Text.Length > 0 Then
  3.             Form2.wbr1.Navigate(Lista.SelectedItems.Item(0).SubItems(2).Text)
  4.         End If
  5.     End Sub



mi dareste una manina pls?
grazie

PM Quote
Avatar
Mte90 (Member)
Guru


Messaggi: 1144
Iscritto: 25/03/2008

Segnala al moderatore
Postato alle 23:57
Sabato, 31/10/2009
che errore ritorna?
Se è un eccezione potresti mettere tutto in un try.
Nel try metti questo codice e il catch lo lasci vuoto o ci metti un'avviso che dice che non ci sono subitem.

PM Quote
Avatar
dedalux (Normal User)
Pro


Messaggi: 155
Iscritto: 14/02/2009

Segnala al moderatore
Postato alle 0:56
Domenica, 01/11/2009
Errore:

System.ArgumentOutOfRangeException: InvalidArgument=Valore di '2' non valido per 'index'.
Nome parametro: index
   in System.Windows.Forms.ListViewItem.ListViewSubItemCollection.get_Item(Int32 index)
   in WindowsApplication1.Form1.Lista_DoubleClick(Object sender, EventArgs e) in Path.....\Form1.vb:riga 112

edit: io comunque ho bisogno di distinguere i due casi, poichè in un altro punto del codice, in caso manchi il secondo subitem, eseguo un'azione differente

Ultima modifica effettuata da dedalux il 01/11/2009 alle 1:21
PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 13:31
Domenica, 01/11/2009
Sai che SubItems(2) indica il terzo elemento, vero?

PM Quote
Avatar
dedalux (Normal User)
Pro


Messaggi: 155
Iscritto: 14/02/2009

Segnala al moderatore
Postato alle 13:48
Domenica, 01/11/2009
Terzo elemento ma secondo subitem

PM Quote
Avatar
GoLDBeRG (Ex-Member)
Expert


Messaggi: 331
Iscritto: 19/12/2005

Segnala al moderatore
Postato alle 8:48
Lunedì, 02/11/2009
cambia gli indici il codice è giusto o è il subitem sbagliato o non hai 3 item

PM Quote
Avatar
dedalux (Normal User)
Pro


Messaggi: 155
Iscritto: 14/02/2009

Segnala al moderatore
Postato alle 13:48
Lunedì, 02/11/2009
Il subitem non è sbagliato, altrimenti non farebbe la cosa giusta quando chiedo la navigazione col testo contenuto nel secondo subitem.
Non capisco la tua ipotesi dei 3 items, io posso selezionarne solo uno. Dobbiamo metterci d'accordo su cosa intendiamo x item. Io, per distinguerli, intendo item solo l'elemento della prima colonna, dalla seconda compresa in poi sono subitem.

PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 17:39
Lunedì, 02/11/2009
Codice sorgente - presumibilmente Delphi

  1. If Lista.SelectedItems.Item(0).SubItems.Count = 2 And   Lista.SelectedItems.Item(0).SubItems(2).Text.Length > 0 Then
  2.   Form2.wbr1.Navigate(Lista.SelectedItems.Item(0).SubItems(2).Text)
  3. End If


Se SubItems.Count = 2, non può esistere SubItems(2) poiché si tratta del terzo elemento.

PM Quote
Avatar
dedalux (Normal User)
Pro


Messaggi: 155
Iscritto: 14/02/2009

Segnala al moderatore
Postato alle 19:04
Lunedì, 02/11/2009
Pero
Codice sorgente - presumibilmente Plain Text

  1. Form2.wbr1.Navigate(Lista.SelectedItems.Item(0).SubItems(2).Text)


naviga col testo del secondo subitem...

Ultima modifica effettuata da dedalux il 02/11/2009 alle 19:16
PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo